home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / il / ilLink.z / ilLink
Encoding:
Text File  |  2002-10-03  |  56.8 KB  |  1,189 lines

  1.  
  2.  
  3.  
  4. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiillllLLLLiiiinnnnkkkk - base class abstraction for object chaining
  10.  
  11. IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
  12.      This is a base class and therefore has no inheritance.
  13.  
  14. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  15.      #include <il/ilLink.h>
  16.  
  17. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  18.      ilLink is the base class that implements the ImageVision Library (IL)
  19.      chaining model.  The ilLink class defines the mechanism for chaining
  20.      objects together; objects are linked in a forward (child) or back
  21.      (parent) relation.  Allowing for such relations allows IL to specify
  22.      image objects as inputs or outputs to other objects.  All IL image
  23.      objects are indirectly derived from ilLink.
  24.  
  25.      The ilLink base class implements the IL chaining model by defining the
  26.      parent and child lists and the necessary functions to manage the lists.
  27.      Additionally, ilLink provides a mechanism for managing the state and
  28.      status of an ilLink.
  29.  
  30.      Additionally, ilLink implements state functions for controlling attribute
  31.      changes.  An enumerated list _i_l_L_i_n_k_P_a_r_a_m is defined by ilLink as a list
  32.      of attributes it can control.  Classes that derive from ilLink can add
  33.      their attributes to the _i_l_L_i_n_k_P_a_r_a_m list to be handled by ilLink.
  34.  
  35.      ilLink provides functions to control whether an attribute can be modified
  36.      as well has functions for querying if an attribute has been modified.
  37.      The protected functions sssseeeettttAAAAlllltttteeeerrrreeeedddd(), iiiissssAAAAlllltttteeeerrrreeeedddd(), rrrreeeesssseeeettttAAAAlllltttteeeerrrreeeedddd(),
  38.      ddddiiiissssaaaabbbblllleeeeAAAAlllltttteeeerrrreeeedddd() and aaaannnnyyyyAAAAlllltttteeeerrrreeeedddd() control whether an attribute has
  39.      changed or not.  ilLink provides additional protected functions to
  40.      control whether an attribute is allowed to be modified or not:
  41.      sssseeeettttAAAAlllllllloooowwwweeeedddd(), cccclllleeeeaaaarrrrAAAAlllllllloooowwwweeeedddd(), uuuunnnnaaaalllltttteeeerrrreeeeaaaabbbblllleeee().
  42.  
  43.      UUUUssssiiiinnnngggg iiiillllLLLLiiiinnnnkkkk
  44.  
  45.      ilLink is a base class used for chaining other ilLink derived objects.
  46.      It is intended to be used as a base class for deriving new types of
  47.      chainable objects.
  48.  
  49.      The ilLink class provides protected and public member functions. The
  50.      protected functions can only be called from a derived class. They may be
  51.      used, for example, to query or set its state and status.  The public
  52.      functions can be called from either a derived class or an application
  53.      program. The public functions are used to manage the parent and child
  54.      links of the ilLink object.
  55.  
  56.      DDDDeeeeffffiiiinnnniiiinnnngggg aaaannnndddd aaaacccccccceeeessssssssiiiinnnngggg oooobbbbjjjjeeeecccctttt ddddeeeessssccccrrrriiiippppttttiiiioooonnnnssss
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  71.  
  72.  
  73.  
  74.      Methods are provided to obtain the class and base class names of objects
  75.      derived from ilLink.  There are also methods to get and set a description
  76.      string for objects derived from ilLink.  Finally, there is a default
  77.      description string for a particular subclass that is used when no
  78.      description string has been explicitly set. If you wish to take advantage
  79.      of this feature when creating a new subclass somewhere in the hierarchy
  80.      derived from ilLink, then it is necessary to specify the values returned
  81.      by these virtual methods.  Two macros are provided to simplify this task:
  82.      iiiillllCCCCllllaaaassssssssLLLLiiiissssttttDDDDeeeeccccllllaaaarrrreeee and iiiillllCCCCllllaaaassssssssLLLLiiiissssttttIIIImmmmpppplllleeeemmmmeeeennnnttttDDDDeeeerrrriiiivvvveeeedddd.  Here is an example
  83.      of how these two macros are used:
  84.  
  85.               class ilAddImg : public ilDyadicImg {
  86.                   // put this macro in the class declaration
  87.                   ilClassListDeclare
  88.                   // rest of declaration ...
  89.               };
  90.               .
  91.               .
  92.               .
  93.               // put this macro in the class implementation
  94.               ilClassListImplementDerived(ilAddImg,ilDyadicImg,"Add")
  95.  
  96.      The first macro has no arguments and simply declares the relevant virtual
  97.      methods for the new class.  The second macro implements the relevent
  98.      virtual methods and so should appear in the class implementation section
  99.      of your code at global scope (i.e. not within a function or method).  It
  100.      has three arguments: the class name, the immediate base class name, and
  101.      the default description string enclosed in double quotes.
  102.  
  103.      UUUUssssiiiinnnngggg pppprrrrooooppppeeeerrrrttttiiiieeeessss
  104.  
  105.      Methods are provided to set and query property values by name on an
  106.      object derived from ilLink.  A property value can be an integer, a
  107.      floating point number, or a pointer.  The name is a character string.
  108.      This feature enables one to tag objects with arbitrary attributes.  There
  109.      are three scope levels provided for setting and querying property values:
  110.      the object instance, the object class, and a global scope.  When
  111.      retrieving a property value, more than one scope can be specified.  If
  112.      so, then each of the specified scopes is searched in this order: the
  113.      object instance scope, then the object class scope, then the global
  114.      scope.
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  137.  
  138.  
  139.  
  140. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY
  141.      CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrr
  142.  
  143.           ilLink()
  144.  
  145.  
  146.      MMMMaaaannnnaaaaggggiiiinnnngggg tttthhhheeee PPPPaaaarrrreeeennnntttt aaaannnndddd CCCChhhhiiiilllldddd rrrreeeellllaaaattttiiiioooonnnnssss
  147.  
  148.           int getNumParents()
  149.           ilLink* getDirectParent(int index=0)
  150.           ilLink* getParent(int index=0)
  151.           ilStatus setParent(ilLink* parent, int idx = 0)
  152.           ilStatus removeParent(int idx = 0)
  153.           int getNumChildren()
  154.           void setEnabled(int enable=TRUE)
  155.           int isEnabled()
  156.           void setDisabledIndex(int parentIndex=0)
  157.           int getDisabledIndex()
  158.           void clearSet(int mask)
  159.           int getMaxIndex(ilStatus val)                          _p_r_o_t_e_c_t_e_d
  160.           int getMinIndex(ilStatus val)                          _p_r_o_t_e_c_t_e_d
  161.           ilLink* getRelatedChild(int type)
  162.           int getRelatedType()
  163.           void setRelatedType(int rtype, int ignoreDisable=FALSE)
  164.           int getRelatedDelete()
  165.           void setRelatedDelete(int del)
  166.           void deleteRelated(int force=TRUE)                     _p_r_o_t_e_c_t_e_d
  167.           static int newRelatedType(char* className=NULL)
  168.           int isRelated()
  169.  
  170.  
  171.      MMMMaaaannnnaaaaggggiiiinnnngggg ssssttttaaaatttteeee
  172.  
  173.           virtual void reset()                                      _p_r_o_t_e_c_t_e_d
  174.           void resetCheck()                                         _p_r_o_t_e_c_t_e_d
  175.           virtual void alterAction()                                _p_r_o_t_e_c_t_e_d
  176.           ilStatus setAltered(int mask=ilLPgeneric)                 _p_r_o_t_e_c_t_e_d
  177.           int isAltered(int mask)
  178.           int anyAltered()                                          _p_r_o_t_e_c_t_e_d
  179.           void disableAltered()                                     _p_r_o_t_e_c_t_e_d
  180.           void resetAltered()                                       _p_r_o_t_e_c_t_e_d
  181.           void setPropAltered(iflName* propName)                    _p_r_o_t_e_c_t_e_d
  182.           int isSet(int mask)
  183.           void markSet(int mask)                                    _p_r_o_t_e_c_t_e_d
  184.           void isAllowed(int mask)
  185.           void setAllowed(int mask)                                 _p_r_o_t_e_c_t_e_d
  186.           void clearAllowed(int mask)                               _p_r_o_t_e_c_t_e_d
  187.           int unalterable(int mask)                                 _p_r_o_t_e_c_t_e_d
  188.           int neverReset()                                          _p_r_o_t_e_c_t_e_d
  189.           int inProgress()                                          _p_r_o_t_e_c_t_e_d
  190.           ilStatus getStatus()
  191.           void clearStatus()
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  203.  
  204.  
  205.  
  206.           ilStatus setStatus(ilStatus val)                           _p_r_o_t_e_c_t_e_d
  207.           void watch(ilWatchedObject* object)                         _p_r_o_t_e_c_t_e_d
  208.           void stopWatching(ilWatchedObject* object)                  _p_r_o_t_e_c_t_e_d
  209.           virtual void watchNotify(ilWatchReason reason, ilWatchedObject* object)
  210.           _p_r_o_t_e_c_t_e_d
  211.           unsigned int getGenerationID()
  212.  
  213.  
  214.      AAAAcccccccceeeessssssssiiiinnnngggg oooobbbbjjjjeeeecccctttt ddddeeeessssccccrrrriiiippppttttiiiioooonnnnssss
  215.  
  216.           char* getDescription(int ignoreDefault=FALSE)
  217.           ilStatus setDescription(char* desc, ilScope scope=ilInstanceScope)
  218.  
  219.  
  220.      AAAAcccccccceeeessssssssiiiinnnngggg oooobbbbjjjjeeeecccctttt pppprrrrooooppppeeeerrrrttttyyyy lllliiiissssttttssss
  221.  
  222.           int getIntProp(char* s, ilScope scope=ilInstanceScope)
  223.           float getFloatProp(char* s, ilScope scope=ilInstanceScope)
  224.           void* getPtrProp(char* s, ilScope scope=ilInstanceScope)
  225.           ilProperty* getProp(char* s, ilScope scope=ilInstanceScope)
  226.           ilProperty* getProp(illName* n, ilScope scope=ilInstanceScope)
  227.           ilStatus setProp(char* s, int i, ilScope scope=ilInstanceScope)
  228.           ilStatus setProp(char* s, float f, ilScope scope=ilInstanceScope)
  229.           ilStatus setProp(char* s, void* p, ilScope scope=ilInstanceScope)
  230.           ilStatus removeProp(char* s, ilScope scope=ilInstanceScope)
  231.           ilPropSet* getClassPropSet()
  232.           ilPropSet* getPropSet()
  233.  
  234.  
  235.      HHHHaaaarrrrddddwwwwaaaarrrreeee hhhhiiiinnnntttt mmmmaaaannnnaaaaggggeeeemmmmeeeennnntttt ilStatus setHwHint(ilHwHint* hint, int
  236.      adopt=FALSE) ilStatus setHwIntHint(int hintID, int val) ilStatus
  237.      setHwIntHint(const char* hintName, int val) const ilHwHint* getHwHint(int
  238.      hintID) const ilHwHint* getHwHint(const char* hintName) int
  239.      getHwIntHint(int hintID, int& val) int getHwIntHint(const char* hintName,
  240.      int& val) ilStatus removeHwHint(int hintID) ilStatus removeHwHint(const
  241.      char* hintName)
  242.  
  243.      MMMMuuuullllttttiiii----tttthhhhrrrreeeeaaaadddd ccccoooonnnnttttrrrroooollll
  244.  
  245.           void mpLock(int spins=ilSpinLock::defaultSpinCount)       _p_r_o_t_e_c_t_e_d
  246.           void mpUnlock()                                           _p_r_o_t_e_c_t_e_d
  247.  
  248.  
  249.      DDDDeeeebbbbuuuuggggggggiiiinnnngggg aaaannnndddd mmmmoooonnnniiiittttoooorrrriiiinnnngggg
  250.  
  251.           static void addResetCallback(ilCallback* cb, int autoDelete=FALSE)
  252.           static ilStatus removeResetCallback(ilCallback* cb)
  253.           static int hasResetCallbacks()
  254.           void dumpChain()
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  269.  
  270.  
  271.  
  272. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  273.      iiiillllLLLLiiiinnnnkkkk(((())))
  274.  
  275.           ilLink()
  276.  
  277.  
  278.           The constructor handles all necessary initialization of the chain
  279.           list and object state.
  280.  
  281.      aaaaddddddddRRRReeeesssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk(((())))
  282.  
  283.           static void addResetCallback(ilCallback* cb, int autoDelete=FALSE)
  284.  
  285.  
  286.           This function is used to add a reset callback.  The ccccbbbb parameter
  287.           should an object declared with one of the templates
  288.           ilResetMethodCallback (for a callback method) or
  289.           ilResetFunctionCallback (for a callback function.)  Either type of
  290.           callback will have a prototype of:
  291.  
  292.                     void func(usrArgType userArg, ilResetCbArg* resetArg)
  293.  
  294.  
  295.           The _u_s_e_r_A_r_g parameter (defined when the callback is declared) is
  296.           intended to provide context for the callback and is not referenced
  297.           by the library.  When a callback is invoked, the _r_e_s_e_t_A_r_g parameter
  298.           will contain a pointer to this ilLink object (member _l_i_n_k) and a
  299.           reason code (member _s_t_a_t_e), defining why the reset occured:
  300.  
  301.           '_i'  The object is being initialized (first call to reset after
  302.                construction).
  303.  
  304.           '_a'  The object is being altered.
  305.  
  306.           '_d'  The object is being deleted.
  307.  
  308.           A new reset callback to a member function might look something like:
  309.  
  310.                     void Bar::resetSeen(Foo*, ilResetCbArg*) { ... }
  311.                     typedef ilResetMethodCallback<Bar,Foo*> UserResetCallback;
  312.  
  313.                     Bar bar;
  314.                     Foo foo;
  315.                     UserResetCallback resetCb(&bar, Bar::resetSeen, &foo);
  316.  
  317.                     ilLink::addResetCallback(&resetCb);
  318.  
  319.  
  320.           In this example, _F_o_o is assumed to be a class defining contextual
  321.           information to the callback.
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  335.  
  336.  
  337.  
  338.           Note that there is one global list of callbacks for all ilLink
  339.           objects (since aaaaddddddddRRRReeeesssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk() is a static member function).
  340.  
  341.      aaaalllltttteeeerrrrAAAAccccttttiiiioooonnnn(((())))
  342.  
  343.           virtual void alterAction()                              _p_r_o_t_e_c_t_e_d
  344.  
  345.  
  346.           This virtual is called when an object is first marked altered after
  347.           a reset.  It can be defined to handle special circumstances (like
  348.           recovering memory in ilMemCacheImg) but most users should use the
  349.           rrrreeeesssseeeetttt() virtual to handle alterations to an object.
  350.  
  351.      aaaannnnyyyyAAAAlllltttteeeerrrreeeedddd(((())))
  352.  
  353.           int anyAltered()                                        _p_r_o_t_e_c_t_e_d
  354.  
  355.  
  356.           Returns TRUE if any _i_l_L_i_n_k_P_a_r_a_m has been set in the _a_l_t_e_r_e_d data
  357.           member.
  358.  
  359.      cccclllleeeeaaaarrrrAAAAlllllllloooowwwweeeedddd(((())))
  360.  
  361.           void clearAllowed(int mask)                               _p_r_o_t_e_c_t_e_d
  362.  
  363.  
  364.           Sets the _i_l_L_i_n_k_P_a_r_a_m specified by _m_a_s_k to be a value that cannot be
  365.           altered.
  366.  
  367.      cccclllleeeeaaaarrrrSSSSeeeetttt(((())))
  368.  
  369.           void clearSet(int mask)
  370.  
  371.  
  372.           Resets a predefined parameter by the specified _m_a_s_k.
  373.  
  374.      cccclllleeeeaaaarrrrSSSSttttaaaattttuuuussss(((())))
  375.  
  376.           void clearStatus()
  377.  
  378.  
  379.           Clears the status returned by ggggeeeettttSSSSttttaaaattttuuuussss(((()))) to ilOKAY.
  380.  
  381.      ddddeeeelllleeeetttteeeeRRRReeeellllaaaatttteeeedddd(((())))
  382.  
  383.           void deleteRelated(int force=TRUE)
  384.  
  385.  
  386.           This method is called when an object is deleted with _f_o_r_c_e TRUE to
  387.           delete all related children.  In reset it is called with _f_o_r_c_e FALSE
  388.           to delete only related children with the related delete flag set.
  389.           In some cases it is important that derived clases call
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  401.  
  402.  
  403.  
  404.           ddddeeeelllleeeetttteeeeRRRReeeellllaaaatttteeeedddd() in their desctructor to clean up any related
  405.           children before parents of that type are themselves torn down.
  406.  
  407.      ddddiiiissssaaaabbbblllleeeeAAAAlllltttteeeerrrreeeedddd(((())))
  408.  
  409.           void disableAltered()                                   _p_r_o_t_e_c_t_e_d
  410.  
  411.  
  412.           Disables the _a_l_t_e_r_e_d data member by logically OR'ing _i_l_L_P_i_n_P_r_o_g_r_e_s_s
  413.           parameter to the _a_l_t_e_r_e_d data member.
  414.  
  415.      dddduuuummmmppppCCCChhhhaaaaiiiinnnn(((())))
  416.  
  417.           void dumpChain()
  418.  
  419.  
  420.           Prints a description of the chain of links to _s_t_d_o_u_t.  The
  421.           description strings of this _i_l_L_i_n_k object and all of its children
  422.           are printed, one per line, with indentation to indicate increasing
  423.           depth.  The hex address of each node is also displayed.
  424.  
  425.  
  426.      Returns the name of the object's class as a character string.  The
  427.      _p_a_r_e_n_t_I_d_x parameter allows the name of a parent class to be retrieved;
  428.      it's value specifies the number of hops up the inheritance chain.  A
  429.      value of zero (the default) fetches this class's name, a value of one
  430.      returns the immediate parent class's name, and so on.
  431.  
  432.      ggggeeeettttCCCCllllaaaassssssssPPPPrrrrooooppppSSSSeeeetttt(((())))
  433.  
  434.           ilPropSet* getClassPropSet()
  435.  
  436.  
  437.           Return a pointer to the property set associated with the object's
  438.           class.
  439.  
  440.      ggggeeeettttDDDDeeeessssccccrrrriiiippppttttiiiioooonnnn(((())))
  441.  
  442.           char* getDescription(int ignoreDefault=FALSE)
  443.  
  444.  
  445.           Returns the object's description string.  If no description string
  446.           has been defined (by sssseeeettttDDDDeeeessssccccrrrriiiippppttttiiiioooonnnn), then the default description
  447.           string is returned unless the flag _i_g_n_o_r_e_D_e_f_a_u_l_t is _T_R_U_E in which
  448.           case _N_U_L_L is returned.
  449.  
  450.      ggggeeeettttDDDDiiiirrrreeeeccccttttPPPPaaaarrrreeeennnntttt(((())))
  451.  
  452.           ilLink* getDirectParent(int index=0)
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  467.  
  468.  
  469.  
  470.           Returns a pointer to the ilLink at index _i_n_d_e_x in the parent list,
  471.           even if that parent has been disabled with setEnabled(FALSE).  NULL
  472.           is returned if there is no ilLink at the specified index.  See
  473.           ggggeeeettttPPPPaaaarrrreeeennnntttt(). The default index is 0.
  474.  
  475.      ggggeeeettttDDDDiiiissssaaaabbbblllleeeeddddIIIInnnnddddeeeexxxx(((())))
  476.  
  477.           int getDisabledIndex()
  478.  
  479.  
  480.           Returns the index of the parent to be used in place of this object
  481.           when it is disabled.  See sssseeeettttDDDDiiiissssaaaabbbblllleeeeddddIIIInnnnddddeeeexxxx(), iiiissssEEEEnnnnaaaabbbblllleeeedddd() and
  482.           sssseeeettttEEEEnnnnaaaabbbblllleeeedddd().
  483.  
  484.      ggggeeeettttFFFFllllooooaaaattttPPPPrrrroooopppp(((())))
  485.  
  486.           float getFloatProp(char* s, ilScope scope=ilInstanceScope)
  487.  
  488.  
  489.           Return the float property value associated with the string _s or _0 if
  490.           no such property has been defined.  The _s_c_o_p_e argument specifies the
  491.           search range for property lookup.  See the explanation of _s_c_o_p_e
  492.           under ggggeeeettttIIIInnnnttttPPPPrrrroooopppp().  The default value for _s_c_o_p_e is _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e.
  493.  
  494.      ggggeeeettttGGGGeeeennnneeeerrrraaaattttiiiioooonnnnIIIIDDDD(((())))
  495.  
  496.           unsigned int getGenerationID()
  497.  
  498.  
  499.           Returns the ID of _o_b_j. The ID is a number unique across all
  500.           instantiated objects derived from ilLink.  The ID changes every time
  501.           the object is altered, so it may be used for an inexpensive check of
  502.           whether an object has changed.
  503.  
  504.      ggggeeeettttHHHHwwwwHHHHiiiinnnntttt(((())))
  505.  
  506.           const ilHwHint* getHwHint(int hintID)
  507.           const ilHwHint* getHwHint(const char* hintName)
  508.           int getHwIntHint(int hintID, int& val)
  509.           int getHwIntHint(const char* hintName, int& val)
  510.  
  511.  
  512.           This function returns a pointer to the ilHwHint associated with
  513.           either the given _h_i_n_t_I_D or _h_i_n_t_N_a_m_e. If the requested hint has not
  514.           been set on this object (using sssseeeettttHHHHwwwwHHHHiiiinnnntttt()), then the global hints
  515.           are searched for this hint.  If the hint has also not been set
  516.           globally, then this method returns NULL.  The ggggeeeettttHHHHwwwwIIIInnnnttttHHHHiiiinnnntttt() methods
  517.           provide a simpler interface to access integer hints that were
  518.           previously set using sssseeeettttHHHHwwwwIIIInnnnttttHHHHiiiinnnntttt() or iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnntttt().  The
  519.           ggggeeeettttHHHHwwwwIIIInnnnttttHHHHiiiinnnntttt() methods return _T_R_U_E if the hint is defined, and sets
  520.           the integer pointed-to by the _v_a_l parameter to the hint value if it
  521.           is defined.  The contents of _v_a_l are unchanged if the hint is
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  533.  
  534.  
  535.  
  536.           undefined.  See iiiillllHHHHwwwwHHHHiiiinnnntttt((((3333)))) for specific information on IL-
  537.           recognized hints.
  538.  
  539.      ggggeeeettttIIIInnnnttttPPPPrrrroooopppp(((())))
  540.  
  541.           int getIntProp(char* s, ilScope scope=ilInstanceScope)
  542.  
  543.  
  544.           Return the integer property value associated with the string _s or _0
  545.           if no such property has been defined.
  546.  
  547.           The _s_c_o_p_e argument specifies the search range for property lookup.
  548.           It can be any logically OR'ed combination of _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e,
  549.           _i_l_C_l_a_s_s_S_c_o_p_e, and _i_l_G_l_o_b_a_l_S_c_o_p_e.  If _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e is specified,
  550.           then the object's property set is searched.  If _i_l_C_l_a_s_s_S_c_o_p_e is
  551.           specified, then the object's class property set is searched.
  552.           Finally, if _i_l_G_l_o_b_a_l_S_c_o_p_e is specified, then the global property set
  553.           is searched.  If more than one of of the search scopes is specified,
  554.           then each of the specified scopes is searched in this order: the
  555.           object instance scope, then the object class scope, then the global
  556.           scope.  The default value for _s_c_o_p_e is _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e.
  557.  
  558.      ggggeeeettttMMMMaaaaxxxxIIIInnnnddddeeeexxxx(((())))
  559.  
  560.           int getMaxIndex()                                    _p_r_o_t_e_c_t_e_d
  561.  
  562.  
  563.           Returns the highest index value in the parent list.
  564.  
  565.      ggggeeeettttMMMMiiiinnnnIIIInnnnddddeeeexxxx(((())))
  566.  
  567.           int getMinIndex()                                    _p_r_o_t_e_c_t_e_d
  568.  
  569.  
  570.           Returns the lowest index value in the parent list.
  571.  
  572.      ggggeeeettttNNNNuuuummmmCCCChhhhiiiillllddddrrrreeeennnn(((())))
  573.  
  574.           int getNumChildren()
  575.  
  576.  
  577.           Returns the length of the children list.
  578.  
  579.      ggggeeeettttNNNNuuuummmmPPPPaaaarrrreeeennnnttttssss(((())))
  580.  
  581.           int getNumParents()
  582.  
  583.  
  584.           Returns the length of the parent list.
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  599.  
  600.  
  601.  
  602.      ggggeeeettttPPPPaaaarrrreeeennnntttt(((())))
  603.  
  604.           ilLink* getParent(int index=0)
  605.  
  606.  
  607.           Returns a pointer to the ilLink at index _i_n_d_e_x in the parent list.
  608.           NULL is returned if there is no ilLink at the specified index. If
  609.           the selected parent of this object has been disabled with
  610.           setEnabled(FALSE), the actual parent returned will be the parent's
  611.           parent designated with sssseeeettttDDDDiiiissssaaaabbbblllleeeeddddIIIInnnnddddeeeexxxx().  If that grandparent is
  612.           also disabled the process will be repeated until an enabled (great-
  613.           ...)great-grandparent is found or there are no more ancestors, in
  614.           which case NULL is returned.  See sssseeeettttEEEEnnnnaaaabbbblllleeeedddd() and
  615.           sssseeeettttDDDDiiiissssaaaabbbblllleeeeddddIIIInnnnddddeeeexxxx().  The default index is 0.
  616.  
  617.      ggggeeeettttPPPPrrrroooopppp(((())))
  618.  
  619.           ilProperty* getProp(char* s, ilScope scope=ilInstanceScope)
  620.           ilProperty* getProp(illName* n, ilScope scope=ilInstanceScope)
  621.  
  622.  
  623.           Return the property associated with the string _s or _N_U_L_L if no such
  624.           property has been defined.  The second version expects an iiiillllllllNNNNaaaammmmeeee
  625.           pointer rather than a character string as the search key.  It is
  626.           more efficient to look-up a property by iiiillllllllNNNNaaaammmmeeee pointer than by a
  627.           string because hashing is avoided.  The _s_c_o_p_e argument specifies the
  628.           search range for property lookup.  See the explanation of _s_c_o_p_e
  629.           under ggggeeeettttIIIInnnnttttPPPPrrrroooopppp().  The default value for _s_c_o_p_e is _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e.
  630.  
  631.      ggggeeeettttPPPPrrrrooooppppSSSSeeeetttt(((())))
  632.  
  633.           ilPropSet* getPropSet()
  634.  
  635.  
  636.           Return a pointer to the object's property set.
  637.  
  638.      ggggeeeettttPPPPttttrrrrPPPPrrrroooopppp(((())))
  639.  
  640.           void* getPtrProp(char* s, ilScope scope=ilInstanceScope)
  641.  
  642.  
  643.           Return the pointer property value associated with the string _s or
  644.           _N_U_L_L if no such property has been defined.
  645.  
  646.           The _s_c_o_p_e argument specifies the search range for property lookup.
  647.           See the explanation of _s_c_o_p_e under ggggeeeettttIIIInnnnttttPPPPrrrroooopppp().  The default value
  648.           for _s_c_o_p_e is _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e.
  649.  
  650.      ggggeeeettttRRRReeeellllaaaatttteeeeddddCCCChhhhiiiilllldddd(((())))
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  665.  
  666.  
  667.  
  668.           ilLink* getRelatedChild(int type)
  669.  
  670.  
  671.           Returns a pointer to the child with the indicated related type, if
  672.           any, or NULL otherwise.  See nnnneeeewwwwRRRReeeellllaaaatttteeeeddddTTTTyyyyppppeeee() for more details on
  673.           related types.
  674.  
  675.      ggggeeeettttRRRReeeellllaaaatttteeeeddddDDDDeeeelllleeeetttteeee(((())))
  676.  
  677.           int getRelatedDelete()
  678.  
  679.  
  680.           Returns TRUE if and only if this image has been marked as a related
  681.           child to be deleted automatically when the parent is reset.  See
  682.           nnnneeeewwwwRRRReeeellllaaaatttteeeeddddTTTTyyyyppppeeee() for more details on related types.
  683.  
  684.      ggggeeeettttRRRReeeellllaaaatttteeeeddddTTTTyyyyppppeeee(((())))
  685.  
  686.           int getRelatedType()
  687.  
  688.  
  689.           Returns the related type of this image or zero if the image is not a
  690.           related child.  See nnnneeeewwwwRRRReeeellllaaaatttteeeeddddTTTTyyyyppppeeee() for more details on related
  691.           types.
  692.  
  693.      ggggeeeettttSSSSttttaaaattttuuuussss(((())))
  694.  
  695.           ilStatus getStatus()
  696.  
  697.  
  698.           Returns the value of the status data member.  The possible constants
  699.           that can be returned are defined in the <_i_l/_i_l_E_r_r_o_r._h> header file.
  700.  
  701.      hhhhaaaassssRRRReeeesssseeeettttCCCCaaaallllllllbbbbaaaacccckkkkssss(((())))
  702.  
  703.           static int hasResetCallbacks()
  704.  
  705.  
  706.           Returns TRUE if any reset callbacks have been defined with
  707.           aaaaddddddddRRRReeeesssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk().
  708.  
  709.      iiiinnnnPPPPrrrrooooggggrrrreeeessssssss(((())))
  710.  
  711.           int inProgress()                                     _p_r_o_t_e_c_t_e_d
  712.  
  713.  
  714.           Returns TRUE if the _i_l_L_i_n_k_P_a_r_a_m value, _i_l_L_P_i_n_P_r_o_g_r_e_s_s, is set.
  715.  
  716.      iiiissssAAAAlllllllloooowwwweeeedddd(((())))
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.                                                                        PPPPaaaaggggeeee 11111111
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  731.  
  732.  
  733.  
  734.           int isAllowed(int mask)
  735.  
  736.  
  737.           Returns TRUE if the parameter _m_a_s_k is set in the _a_l_l_o_w_e_d data
  738.           member.  The parameter, _m_a_s_k, must be a valid ilLinkParam value, as
  739.           defined in the header file <_i_l/_i_l_L_i_n_k._h>.
  740.  
  741.      iiiissssAAAAlllltttteeeerrrreeeedddd(((())))
  742.  
  743.           int isAltered(int mask)
  744.  
  745.  
  746.           Returns TRUE if the parameter _m_a_s_k is set in the _a_l_t_e_r_e_d data
  747.           member.  The parameter, _m_a_s_k, must be a valid ilLinkParam value, as
  748.           defined in the header file <_i_l/_i_l_L_i_n_k._h>.
  749.  
  750.      iiiissssEEEEnnnnaaaabbbblllleeeedddd(((())))
  751.  
  752.           int isEnabled()
  753.  
  754.  
  755.           Returns TRUE if this object is enabled (the default state), FALSE
  756.           otherwise.  See sssseeeettttEEEEnnnnaaaabbbblllleeeedddd() for details on what it means to be
  757.           enabled or disabled.
  758.  
  759.      iiiissssRRRReeeellllaaaatttteeeedddd(((())))
  760.  
  761.           int isRelated()
  762.  
  763.  
  764.           Returns FALSE if the object is not related; TRUE otherwise.
  765.  
  766.      iiiissssSSSSeeeetttt(((())))
  767.  
  768.           int isSet(int mask)
  769.  
  770.  
  771.           Returns TRUE if the _i_l_L_i_n_k_P_a_r_a_m specified by _m_a_s_k has been
  772.           previously set.
  773.  
  774.      mmmmaaaarrrrkkkkSSSSeeeetttt(((())))
  775.  
  776.           void markSet(int mask)                                    _p_r_o_t_e_c_t_e_d
  777.  
  778.  
  779.           Updates the state to recognize that the _i_l_L_i_n_k_P_a_r_a_m specified by
  780.           _m_a_s_k has been set.
  781.  
  782.      mmmmppppLLLLoooocccckkkk(((())))
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.                                                                        PPPPaaaaggggeeee 11112222
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  797.  
  798.  
  799.  
  800.           void mpLock(int spins=ilSpinLock::defaultSpinCount)       _p_r_o_t_e_c_t_e_d
  801.  
  802.  
  803.           Every ilLink derived object contains an ilSpinLock used to prevent
  804.           reset from being called concurretnly.  This spin lock can be used
  805.           for other similar applications by calling this function.  The _s_p_i_n_s
  806.           parameter is passed on to the sssseeeetttt() function of ilSpinLock.  See the
  807.           iiiillllSSSSppppiiiinnnnLLLLoooocccckkkk man page for more details.
  808.  
  809.      mmmmppppUUUUnnnnlllloooocccckkkk(((())))
  810.  
  811.           void mpUnlock()                                         _p_r_o_t_e_c_t_e_d
  812.  
  813.  
  814.           This function is used to unlock the lock set with mmmmppppLLLLoooocccckkkk().
  815.  
  816.      nnnneeeewwwwRRRReeeellllaaaatttteeeeddddTTTTyyyyppppeeee(((())))
  817.  
  818.           static int newRelatedType(char* className=NULL)
  819.  
  820.  
  821.           Gets a new related type code for the class of related child defined
  822.           by _c_l_a_s_s_N_a_m_e.  A related child is an image that is closely
  823.           associated with its parent image, and is automatically deleted when
  824.           its parent is deleted.  If the delete related flag is set (see
  825.           sssseeeettttRRRReeeellllaaaatttteeeeddddDDDDeeeelllleeeetttteeee then the related child will be delete on parent
  826.           reset as well.  Related children are primarily used by the hardware
  827.           acceleration code but can be useful for other purposes.  See also
  828.           ddddeeeelllleeeetttteeeeRRRReeeellllaaaatttteeeedddd().
  829.  
  830.      nnnneeeevvvveeeerrrrRRRReeeesssseeeetttt(((())))
  831.  
  832.           int neverReset()  _p_r_o_t_e_c_t_e_d
  833.  
  834.  
  835.           Returns TRUE if the object has not yet been reset; FALSE if it has
  836.           been reset since its construction.
  837.  
  838.      rrrreeeemmmmoooovvvveeeeHHHHwwwwHHHHiiiinnnntttt(((())))
  839.  
  840.           ilStatus removeHwHint(int hintID)
  841.           ilStatus removeHwHint(const char* hintName)
  842.  
  843.  
  844.           This method removes the hardware hint associated with the given
  845.           hintID or hintName.
  846.  
  847.      rrrreeeemmmmoooovvvveeeePPPPaaaarrrreeeennnntttt(((())))
  848.  
  849.           ilStatus removeParent(int index=0)
  850.  
  851.  
  852.  
  853.  
  854.  
  855.                                                                        PPPPaaaaggggeeee 11113333
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  863.  
  864.  
  865.  
  866.           This function removes the ilLink indexed by _i_n_d_e_x and marks this
  867.           IilLink objects's state as _a_l_t_e_r_e_d.
  868.  
  869.      rrrreeeemmmmoooovvvveeeePPPPrrrroooopppp(((())))
  870.  
  871.           ilStatus removeProp(char* s, ilScope scope=ilInstanceScope)
  872.           ilStatus removeProp(illName* n, ilScope scope=ilInstanceScope)
  873.  
  874.  
  875.           Remove the property associated with the string _s from the specified
  876.           property set.  The second version expects an iiiillllllllNNNNaaaammmmeeee pointer rather
  877.           than a character string as the search key.  It is more efficient to
  878.           remove a property by iiiillllllllNNNNaaaammmmeeee pointer than by a string because
  879.           hashing is avoided. The _s_c_o_p_e argument selects the property set from
  880.           which the property is removed.  See the explanation of _s_c_o_p_e under
  881.           sssseeeettttPPPPrrrroooopppp().  The default value for _s_c_o_p_e is _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e.  The
  882.           object is not marked altered as a result of rrrreeeemmmmoooovvvveeeePPPPrrrroooopppp().
  883.  
  884.      rrrreeeemmmmoooovvvveeeeRRRReeeesssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk(((())))
  885.  
  886.           static ilStatus removeResetCallback(ilCallback* cb)
  887.  
  888.  
  889.           This function removes a reset callback previously defined with
  890.           aaaaddddddddRRRReeeesssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk().
  891.  
  892.      rrrreeeesssseeeetttt(((())))
  893.  
  894.           virtual void reset()                                      _p_r_o_t_e_c_t_e_d
  895.  
  896.  
  897.           This function should be redefined by the derived class to handle
  898.           alterations.  The alterations will typically be triggered when
  899.           either the parent or child list have been modified.
  900.  
  901.      rrrreeeesssseeeettttAAAAlllltttteeeerrrreeeedddd(((())))
  902.  
  903.           void resetAltered()                                     _p_r_o_t_e_c_t_e_d
  904.  
  905.  
  906.           Resets the _a_l_t_e_r_e_d data member to zero.
  907.  
  908.      rrrreeeesssseeeettttCCCChhhheeeecccckkkk(((())))
  909.  
  910.           void resetCheck()                                       _p_r_o_t_e_c_t_e_d
  911.  
  912.  
  913.           Invokes the reset() method if the altered state is set.
  914.  
  915.      sssseeeettttAAAAlllllllloooowwwweeeedddd(((())))
  916.  
  917.  
  918.  
  919.  
  920.  
  921.                                                                        PPPPaaaaggggeeee 11114444
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  929.  
  930.  
  931.  
  932.           void setAllowed(int mask)                                 _p_r_o_t_e_c_t_e_d
  933.  
  934.  
  935.           Updates the state to allow the _i_l_L_i_n_k_P_a_r_a_m specified by _m_a_s_k to be
  936.           modified.
  937.  
  938.      sssseeeettttAAAAlllltttteeeerrrreeeedddd(((())))
  939.  
  940.           ilStatus setAltered(int mask=ilLPgeneric)                 _p_r_o_t_e_c_t_e_d
  941.  
  942.  
  943.           Sets the altered data member to _m_a_s_k.  The default is _i_l_L_P_g_e_n_e_r_i_c.
  944.  
  945.      sssseeeettttDDDDeeeessssccccrrrriiiippppttttiiiioooonnnn(((())))
  946.  
  947.           ilStatus setDescription(char* desc, ilScope scope=ilInstanceScope)
  948.  
  949.  
  950.           Set the object's description string to be that pointed to by _d_e_s_c.
  951.           Later calls to ggggeeeettttDDDDeeeessssccccrrrriiiippppttttiiiioooonnnn() will return this string.  The
  952.           argument _s_c_o_p_e can have value _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e or _i_l_C_l_a_s_s_S_c_o_p_e.  In
  953.           the former case, the description string applies to the object only.
  954.           The default value for _s_c_o_p_e is _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e.  In the latter case,
  955.           it applies to all objects of that class.  This method returns _i_l_O_K_A_Y
  956.           if the value of _s_c_o_p_e has value _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e or _i_l_C_l_a_s_s_S_c_o_p_e and
  957.           _i_l_U_N_S_U_P_P_O_R_T_E_D otherwise.  The object is not marked altered as a
  958.           result of sssseeeettttDDDDeeeessssccccrrrriiiippppttttiiiioooonnnn().
  959.  
  960.      sssseeeettttDDDDiiiissssaaaabbbblllleeeeddddIIIInnnnddddeeeexxxx(((())))
  961.  
  962.           void setDisabledIndex(int parentIndex=0)
  963.  
  964.  
  965.           Sets the index of the parent to be used in place of this object,
  966.           when it is disabled, to _p_a_r_e_n_t_I_n_d_e_x.  The default of this index upon
  967.           construction is zero.  See ggggeeeettttDDDDiiiissssaaaabbbblllleeeeddddIIIInnnnddddeeeexxxx(), iiiissssEEEEnnnnaaaabbbblllleeeedddd() and
  968.           sssseeeettttEEEEnnnnaaaabbbblllleeeedddd().
  969.  
  970.      sssseeeettttEEEEnnnnaaaabbbblllleeeedddd(((())))
  971.  
  972.           void setEnabled(int enable=TRUE)
  973.  
  974.  
  975.           This function sets the enabled status of this object to _e_n_a_b_l_e.  If
  976.           _e_n_a_b_l_e is TRUE, then this object will participate normally in a
  977.           chain of objects.  If _e_n_a_b_l_e is FALSE, a chain with this object in
  978.           it will behave as if the object were removed from the chain; this
  979.           object's children's parents will appear to the parent of this object
  980.           designated with sssseeeettttDDDDiiiissssaaaabbbblllleeeeddddIIIInnnnddddeeeexxxx().  A disabled object that is
  981.           directly accessed (say via ccccooooppppyyyyTTTTiiiilllleeee(), will behave normally, only
  982.           accesses through a child's ggggeeeettttPPPPaaaarrrreeeennnntttt() method are affected.  Since
  983.           ilView uses ggggeeeettttPPPPaaaarrrreeeennnntttt() to find its input, even the end of a chain
  984.  
  985.  
  986.  
  987.                                                                        PPPPaaaaggggeeee 11115555
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  995.  
  996.  
  997.  
  998.           being displayed through ilDisplay/ilView can be successfuly
  999.           disabled.  The default enable state for a newly constucted object is
  1000.           TRUE.  See sssseeeettttDDDDiiiissssaaaabbbblllleeeeddddIIIInnnnddddeeeexxxx(), ilDisplay and ilView.
  1001.  
  1002.      sssseeeettttHHHHwwwwHHHHiiiinnnntttt(((())))
  1003.  
  1004.           ilStatus setHwHint(ilHwHint* hint, int adopt=FALSE)
  1005.           ilStatus setHwIntHint(int hintID, int val)
  1006.           ilStatus setHwIntHint(const char* hintName, int val)
  1007.  
  1008.  
  1009.           Set a hardware hint for this image. The adopt argument indicates
  1010.           whether this ilLink should adopt the responsibility for releasing
  1011.           the storage associated with the hint. If set to TRUE then the ilLink
  1012.           will ensure that the hint is deleted when no longer needed.  The
  1013.           setHwIntHint methods provide a simpler interface to set integer-
  1014.           valued hints.  Hints that are set in this manner are always adopted
  1015.           and managed internally.  The hintID is a global identifier that is
  1016.           associated with the particular hint name.  It can be found using the
  1017.           function ilHwFindHintID.
  1018.  
  1019.      sssseeeettttPPPPaaaarrrreeeennnntttt(((())))
  1020.  
  1021.           ilStatus setParent(ilLink* parent, int index)
  1022.  
  1023.  
  1024.           Replaces the ilLink at _i_n_d_e_x with _p_a_r_e_n_t and sets the state to
  1025.           _a_l_t_e_r_e_d. If _p_a_r_e_n_t already exists at _i_n_d_e_x, then ilOKAY is returned
  1026.           and the state is not altered.  The default index is 0.
  1027.  
  1028.      sssseeeettttPPPPrrrroooopppp(((())))
  1029.  
  1030.           ilStatus setProp(char* s, int i, ilScope scope=ilInstanceScope)
  1031.           ilStatus setProp(illName* n, int i, ilScope scope=ilInstanceScope)
  1032.           ilStatus setProp(char* s, float f, ilScope scope=ilInstanceScope)
  1033.           ilStatus setProp(illName* n, float f, ilScope scope=ilInstanceScope)
  1034.           ilStatus setProp(char* s, void* p, ilScope scope=ilInstanceScope)
  1035.           ilStatus setProp(illName* n, void* p, ilScope scope=ilInstanceScope)
  1036.           ilStatus setProp(char* s, const ilPropValue& val,
  1037.               ilScope scope=ilInstanceScope)
  1038.           ilStatus setProp(illName* n, const ilPropValue& val,
  1039.               ilScope scope=ilInstanceScope)
  1040.  
  1041.  
  1042.           Assign a property value associated with the string _s.  Alternative
  1043.           versions expect an iiiillllllllNNNNaaaammmmeeee pointer rather than a character string as
  1044.           the search key.    It is more efficient to set a property by iiiillllllllNNNNaaaammmmeeee
  1045.           pointer than by a string because hashing is avoided.  See the
  1046.           iiiillllGGGGlllloooobbbbaaaallllNNNNaaaammmmeeee man page to find out how to obtain an iiiillllllllNNNNaaaammmmeeee pointer
  1047.           from a string.  The property value can be an integer, a floating
  1048.           point number, or a pointer.  It is also possible to provide an
  1049.           iiiillllPPPPrrrrooooppppVVVVaaaalllluuuueeee reference as the property value.  The _s_c_o_p_e argument
  1050.  
  1051.  
  1052.  
  1053.                                                                        PPPPaaaaggggeeee 11116666
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  1061.  
  1062.  
  1063.  
  1064.           selects the property set under which the property value is stored.
  1065.           It can be one of _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e, _i_l_C_l_a_s_s_S_c_o_p_e, or _i_l_G_l_o_b_a_l_S_c_o_p_e.
  1066.           If _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e is specified, then the object's property set is
  1067.           selected.  If _i_l_C_l_a_s_s_S_c_o_p_e is specified, then the object's class
  1068.           property set is selected.  Finally, if _i_l_G_l_o_b_a_l_S_c_o_p_e is specified,
  1069.           then the global property set is selected.  The default value for
  1070.           _s_c_o_p_e is _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e.  The function returns _i_l_O_K_A_Y if _s_c_o_p_e is
  1071.           one of _i_l_I_n_s_t_a_n_c_e_S_c_o_p_e, _i_l_C_l_a_s_s_S_c_o_p_e, and _i_l_G_l_o_b_a_l_S_c_o_p_e.  Otherwise,
  1072.           it returns _i_l_U_N_S_U_P_P_O_R_T_E_D.  The object is not marked altered as a
  1073.           result of sssseeeettttPPPPrrrroooopppp().
  1074.  
  1075.      sssseeeettttPPPPrrrrooooppppAAAAlllltttteeeerrrreeeedddd(((())))
  1076.  
  1077.           void setPropAltered(iflName* propName)                    _p_r_o_t_e_c_t_e_d
  1078.  
  1079.  
  1080.           Sets all children (and descendants) that have the property defined
  1081.           and non-zero to be altered.  This method is used by the ilHwHints
  1082.           mechanism to propagate hint change notifications to all objects that
  1083.           have been marked as being interested in hint changes.
  1084.  
  1085.      sssseeeettttRRRReeeellllaaaatttteeeeddddDDDDeeeelllleeeetttteeee(((())))
  1086.  
  1087.           void setRelatedDelete(int del)
  1088.  
  1089.  
  1090.           Set the related child delete flag to _d_e_l.  If the flag is set TRUE
  1091.           then this image will be deleted automatically when the parent is
  1092.           reset.  See nnnneeeewwwwRRRReeeellllaaaatttteeeeddddTTTTyyyyppppeeee() for more details on related types.
  1093.  
  1094.      sssseeeettttRRRReeeellllaaaatttteeeeddddTTTTyyyyppppeeee(((())))
  1095.  
  1096.           void setRelatedType(int rtype, int ignoreDisable=FALSE)
  1097.  
  1098.  
  1099.           Marks an image as related child of type _r_t_y_p_e.  If _i_g_n_o_r_e_D_i_s_a_b_l_e is
  1100.           TRUE then the image will not pay attention to the disable status of
  1101.           its immediate parent, thus ensuring that it is only associated with
  1102.           that particular image.  See nnnneeeewwwwRRRReeeellllaaaatttteeeeddddTTTTyyyyppppeeee() for more details on
  1103.           related types.
  1104.  
  1105.      sssseeeettttSSSSttttaaaattttuuuussss(((())))
  1106.  
  1107.           ilStatus setStatus(ilStatus val)                          _p_r_o_t_e_c_t_e_d
  1108.  
  1109.  
  1110.           Sets the status returned by ggggeeeettttSSSSttttaaaattttuuuussss() to _v_a_l.  Any constant that
  1111.           is used must be defined in the <_i_l/_i_l_E_r_r_o_r._h> header file.  Any
  1112.           value other than ilOKAY is considered to be an error status.
  1113.           ssssttttooooppppWWWWaaaattttcccchhhhiiiinnnngggg(((())))
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.                                                                        PPPPaaaaggggeeee 11117777
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. iiiillllLLLLiiiinnnnkkkk((((3333))))          IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          iiiillllLLLLiiiinnnnkkkk((((3333))))
  1127.  
  1128.  
  1129.  
  1130.           void stopWatching(ilWatchedObject* object)        _p_r_o_t_e_c_t_e_d
  1131.  
  1132.  
  1133.           Remove watch callback.
  1134.  
  1135.      uuuunnnnaaaalllltttteeeerrrraaaabbbblllleeee(((())))
  1136.  
  1137.           int unalterable(int mask)                                 _p_r_o_t_e_c_t_e_d
  1138.  
  1139.  
  1140.           Returns TRUE if the _i_l_L_i_n_k_P_a_r_a_m specified by _m_a_s_k cannot be altered.
  1141.  
  1142.      wwwwaaaattttcccchhhh(((())))
  1143.  
  1144.           void watch(ilWatchedObject* object)       _p_r_o_t_e_c_t_e_d
  1145.  
  1146.  
  1147.           Add watch callback. See the iiiillllWWWWaaaattttcccchhhheeeeddddOOOObbbbeeeecccctttt man page for a
  1148.           description of the alteration notifier.
  1149.  
  1150.      wwwwaaaattttcccchhhhNNNNoooottttiiiiffffyyyy(((())))
  1151.  
  1152.           virtual void watchNotify(ilWatchReason reason, ilWatchedObject* object)
  1153.           _p_r_o_t_e_c_t_e_d
  1154.  
  1155.  
  1156.           This virtual method is called by watchCallback to allow derived
  1157.           classes to define a callback action.
  1158.  
  1159. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  1160.      ilImage, iflList, ilPropSet, ilWatchedObject, ilHwHint, <_i_l/_i_l_L_i_n_k._h>,
  1161.      <_i_l/_i_l_E_r_r_o_r._h>, <_i_l/_i_l_T_y_p_e_s._h>
  1162.  
  1163.      Please refer to the _I_m_a_g_e_V_i_s_i_o_n _L_i_b_r_a_r_y _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e for a full
  1164.      description of overall concepts and architecture.
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.                                                                        PPPPaaaaggggeeee 11118888
  1186.  
  1187.  
  1188.  
  1189.